package com.tanhua.autoconfig.template;

import cn.hutool.core.date.DateUtil;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.tanhua.autoconfig.properties.OssProperties;

import java.io.InputStream;
import java.util.Date;
import java.util.UUID;

/**
 * @Author: JW
 * @Description:  TODO 这是文件上传至阿里云
 * @Date: 8:50 2021/12/22
 * @Param: 文件名 和 文件流
 * @return: 返回文件上传之后的路径
**/
public class OssTemplate {

    private OssProperties ossProperties;

    public OssTemplate(OssProperties ossProperties) {
        this.ossProperties = ossProperties;
    }

    public  String upload(String fileName, InputStream inputStream) {

        String suffix = fileName.substring(fileName.lastIndexOf("."));

        String url = DateUtil.format(new Date(), "yyyy/MM/dd") + "/" + UUID.randomUUID().toString() + suffix;

        OSS ossClient =   new OSSClientBuilder().build(
                ossProperties.getEndpoint(), ossProperties.getAccessKeyId(), ossProperties.getAccessKeySecret());


        // 依次填写Bucket名称（例如examplebucket）和Object完整路径（例如exampledir/exampleobject.txt）。Object完整路径中不能包含Bucket名称。
        ossClient.putObject(ossProperties.getBucketName(), url, inputStream);

        // 关闭OSSClient。
        ossClient.shutdown();

        return url;
    }
}
